# Yandex Workshop - Классификация сетевых аномалий

В этом репозитории содержится код и ресурсы проекта для Яндекс Мастерской по классификации сетевых аномалий.

## Обзор

В этом репозитории мы исследуем задачу классификации сетевых аномалий с использованием методов машинного обучения. Цель состоит в построении моделей, которые могут точно классифицировать данные сетевого трафика как нормальные или аномальные классы трафика.

## Содержание

- `jupiter notebooks/`: В этой директории содержатся Jupyter-ноутбуки, которые приводят процесс предобработки данных, обучения моделей и оценки их производительности. Ноутбуки организованы следующим образом:
  - `EDA & Yandex Catboost classification.ipynb`: Разведка данных датасета и обучение модели.
    
- `models/`: В этой директории содержатся обученные модели машинного обучения, сохраненные в сериализованном формате cbm.

## Требования

Для запуска кода в этом репозитории вам понадобятся следующие зависимости:

- Python 3
- Jupyter Notebook
- Pandas
- NumPy
- Scikit-learn
- Yandex Catboost
- Dask
- DataPrep
- Fast API

Вы можете установить необходимые пакеты, выполнив следующую команду:
- pip install -r requirements.txt

## Метрики полученных моделей
### network_traffic_data_classification_20231011-205830.cbm
| Metric    | Value       |
|-----------|-------------|
| Accuracy  | 0.997887402 |
| Precision | 0.948916621 |
| Recall    | 0.889138490 |
| F1-score  | 0.909275987 |

### network_traffic_data_classification_20231008-194334.cbm
| Metric | Value | 
|-----------|-------------|
| Accuracy | 0.997757681 | 
| Precision | 0.908497645 |
| Recall | 0.886727648 | 
| F1-score | 0.891595075 |



